#pragma once
#include "redis.hpp"
#include <sw/redis++/redis++.h>


//短信验证码
class Code
{
    public:
    using ptr = std::shared_ptr<Code>;
    Code(const std::shared_ptr<sw::redis::Redis>& redis_client) :_redis_client(redis_client) {}

    void append_code(const std::string& cid,const std::string& code,
        const std::chrono::milliseconds & time = std::chrono::milliseconds(300000)) {
        _redis_client->set(cid, code, time);
    } 

    void remove_cid(const std::string& cid) {
        _redis_client->del(cid);
    }

    sw::redis::OptionalString code(const std::string& cid) {
        return _redis_client->get(cid);
    }

    private:
    std::shared_ptr<sw::redis::Redis> _redis_client;
};